package ar.edu.utn.frgp.banco.servlets;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import ar.edu.utn.frgp.banco.domain.Cliente;
import ar.edu.utn.frgp.banco.domain.Cuenta;
import ar.edu.utn.frgp.banco.domain.Servicios;
import ar.edu.utn.frgp.banco.exceptions.ServiceException;
import ar.edu.utn.frgp.banco.service.RecursoServiceCliente;
import ar.edu.utn.frgp.banco.service.RecursoServiceCuenta;
import ar.edu.utn.frgp.banco.service.RecursoServiceServicios;
import ar.edu.utn.frgp.banco.service.impl.RecursoServiceClienteImpl;
import ar.edu.utn.frgp.banco.service.impl.RecursoServiceCuentaImpl;
import ar.edu.utn.frgp.banco.service.impl.RecursoServiceServiciosImpl;
import ar.edu.utn.frgp.banco.servlets.scope.CuentaBean;
import ar.edu.utn.frgp.banco.servlets.scope.ServiciosBean;
import ar.edu.utn.frgp.banco.servlets.scope.mensajeBean;

/**
 * Servlet implementation class ServicioVerificarCliente
 */
public class ServicioVerificarCliente extends GenericServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public ServicioVerificarCliente() {
        // TODO Auto-generated constructor stub
    }

	@Override
	public void realizarAccion(HttpServletRequest req, HttpServletResponse resp) throws Exception {
		
		   String dni = (String)req.getParameter("txtDNI");
		   Cliente cliente = new Cliente();
		   cliente.setDni(Integer.parseInt(dni));
			RecursoServiceCliente recursocliente = new RecursoServiceClienteImpl();
			 HttpSession sesion = req.getSession();
	        			
			try {
							
				cliente=recursocliente.existeClienteTraer(cliente);
				 
				if (cliente!=null){
					sesion.setAttribute("cliente", cliente);
					RecursoServiceServicios  recursoservicio = new RecursoServiceServiciosImpl();
					RecursoServiceCuenta recursocuenta= new RecursoServiceCuentaImpl(); 				 
					List<Cuenta> ListadoCuentas= recursocuenta.listarCuentasActivas(Integer.parseInt(dni));
					List<Servicios> Servicios =recursoservicio.listarServicios();
					ServiciosBean bean = new ServiciosBean();
					bean.setListado(Servicios);
					req.setAttribute("bean", bean);
				 
					CuentaBean beancuenta = new CuentaBean();
					beancuenta.setCuentas(ListadoCuentas);
			 	  	
					req.setAttribute("beancuenta", beancuenta);
					req.getRequestDispatcher("pagarServicio.jsp").forward(req, resp);
			      }
				  else{
					mensajeBean bean = new mensajeBean();
					bean.setMensaje("No Existe el Cliente");
					req.setAttribute("msjBean", bean);
					req.getRequestDispatcher("indexPagarServicio.jsp").forward(req, resp);    
				  }
							 
				} catch (ServiceException e) {
				System.out.println("Error al traer cliente. " + e.getMessage());
				}
				System.out.println("Funcion Cargar Finalizada");
		   
		}
	}


